今天練習一下使用 WebView。
https://www.google.com.tw/search?q=關鍵詞
1、使用者可以通過輸入框打入關鍵詞跳到 Google 畫面進行搜尋。
2、也可以在輸入完關鍵詞以後,點鍵盤上的 Search 來進行搜尋。
3、在搜尋的時候將鍵盤收起來。
通過 WebView 去瀏覽網頁,需要有 internet 使用的權限。
我們可以在 AndroidManifest.xml 中加入請求。
<uses-permission android:name="android.permission.INTERNET"/>
使用起來沒什麼問題,和 iOS 的 UIWebView 使用起來很像,沒什麼問題。
比較特別的是,初始化的時候需要餵一個 WebViewClient 進去,然後通過 loadUrl 讀取頁面。
比 iOS 輕鬆的地方應該是,可以直接通過 String 來 loadUrl 而不用像 iOS 需要先轉成 URL 類型。
val webViewClient = WebViewClient()
webView.setWebViewClient(webViewClient)
webView.loadUrl("https://www.google.com")
和 iOS 中的 UITextField 類似,可以對 EdidView 設定鍵盤類型,包括 return 按鈕的類型,比如 Done / Search / Return 等等。
android:imeOptions="actionSearch"
不知道有沒有更容易的收鍵盤方式,目前來案收鍵盤
val ime = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
ime.hideSoftInputFromWindow(view.windowToken, 0)
EditView 也是通過 TextView.OnEditorActionListener 來監聽事件,比如鍵盤點下了 Done / Search 等等。
TextView.OnEditorActionListener { view, actionId, event -> ...}
有一個現象,如果一開始放了安裝好 App之後即使拿掉了也沒出現問題。
可能要了解一下這方面的機制。